/**************************************************************
 * @file     adc_product.h
 * @brief    用于通知ADC与DMA转换搬运
 * @author   Ruilist
 * @date     2025-08-03
 * @version  V1.0.0
 * @copyright Copyright (c) 2025
 *
 * @note     1 tab = 4 space
 *
 * @par 日志:
 * - V1.0.0 2025-07-25 Ruilist
 **************************************************************/
#ifndef __ADC_PRODUCT_H__
#define __ADC_PRODUCT_H__

//******************************** Includes *********************************//

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "main.h"
#include "cmsis_os.h"

#include "queue.h"
#include "semphr.h"
#include "elog.h"
#include "adc.h"
#include "stm32f4xx_hal.h"
#include "stm32f4xx_hal_adc.h"

//******************************** Includes *********************************//

//******************************** Defines **********************************//

#define BUFFER_SIZE 1

#define BUFFER_1    1
#define BUFFER_2    2

//******************************** Defines **********************************//

//*********************Thread_Func **********************//

extern osThreadId_t         adc_product_TaskHandle;
extern const osThreadAttr_t adc_product_attributes;

//*********************Thread_Func **********************//

extern QueueHandle_t adc_completed_queue;
extern QueueHandle_t buffer_completed_queue;

extern SemaphoreHandle_t xMutex;

//*********************Queue_Handler ********************//

//*********************Queue_Handler ********************//

//******************************** Declaring ********************************//

extern uint32_t *gp_buffer1;
extern uint32_t *gp_buffer2;

/**
 * @brief   adc_product任务
 *
 * @param   *argument    任务默认参数
 *
 * @return  空
 *
 */
void adc_product_Task_func( void *argument );
//******************************** Declaring ********************************//

#endif  // End of __ADC_PRODUCT_H__
